Challenge #64: Catch Me If You Can ~キャッチ・ミー・イフ・ユー・キャン~ – Alteryx Weekly Challenge

Challenge #64: Catch Me If You Can ~キャッチ・ミー・イフ・ユー・キャン~ – Alteryx Weekly Challenge

Clock Icon2018.12.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。

当エントリは『Alteryx Weekly Challenge:Intermediate Level Advent Calendar 2018』の20日目です。

『Alteryx Weekly Challenge:Intermediate Level Advent Calendar 2018』では、Alteryx Communityで公開されているWeekly ChallengeのIntermediate Levelにひたすら1人で挑戦していきます。

今回は変化するデータのフィールドの調整に挑戦します。

動作環境

当エントリの執筆には、以下の環境を利用しています。

  • Windows 10 Pro
  • Alteryx Designer 2018.4.4.54346 英語版

Challenge #64: Catch Me If You Can

お題

今回挑戦するお題はこちら。

「Input」側には2つのデータが用意されています。1つ目のデータは、フィールド名が「CYA」から始まる文字と数字の組み合わせになっています。

2つ目のデータは、「Name」列に1つ目のデータのフィールド名が用意されています。

「Output」側のデータはこちら。「Input」側の2つ目のデータからフィールド名を作成し、1つ目のデータのフィールド名を置き換えています。

なお、このお題はワークフローを実行するたびにデータが変化します。解答をご紹介していく中で表示されるデータが変化しておりますのでご了承ください。

解答の概要

今回作成するワーフクローは以下の通りです。

  1. 2つ目のデータからフィールド名を作成
  2. 1つ目のデータのフィールド名を置換し、不要なデータを削除

解答の詳細

Formulaツール(Preparation -> Formula)を追加し、2つ目のデータと接続します。Formulaツールを使用して、フィールド名を準備します。

「Field」列をV_WString型で作成し、以下の式を設定します。

[Category] + " " + "/" + " " + [SubCategory] + " " + "/" + " " + [Description]

「SubCategory」列にNullがある場合、「Basic Variables / / Total Population」などのように、スラッシュに空白が挟まれて出力されます。この部分の修正のため、以下の式を追加します。

Replace([Field], "/  /", "/")

これでフィールド名を準備できました。

Dynamic Renameツール(Developer -> Dynamic Rename)を使用して、1つ目のデータのフィールド名を、Formulaツールで準備したフィールド名に置き換えます。1つ目のデータの出力をDynamic Renameツールの L の入力に、Formulaツールの出力をDynamic Renameツールの R の入力に接続します。

以下の設定をしています。

  • Rename Mode: Take Field Name from Right Input Rows
  • Old Field Name from Column: Name( L に入力されたデータの「Name」列)
  • New Field Name from Column: Field( L に入力されたデータの「Field」列)

結果を確認してみると、1つ目のデータのフィールド名と2つ目のデータの「Name」列で一致するものがある場合はフィールド名が置換されていますが、一致するものがない場合はフィールド名がそのままになっています。

フィールド名が置換されなかったものは不要なデータとなります。Dynamic Selectツール(Developer -> Dynamic Select)の Select via a Formula を使用して、不要な列を削除します。

Formulaツールで用意したフィールド名にはスラッシュが含まれています。フィールド名にスラッシュが含まれる列のみ残します。

式には以下の通り設定しています。

Contains([Name], "/")

結果を確認して完成です。

最後に

今回はWeekly ChallengeのChallenge #64: Catch Me If You Canに挑戦しました。

明日もお楽しみに!

サンプルワークフローのご案内

クラスメソッドでご契約のユーザー様向けに、当ブログでご紹介したワークフローを専用ポータルにて公開しております。当エントリでご紹介したワークフローも公開予定ですので、ご参考にしていただきますと幸いです。

Alteryxの導入なら、クラスメソッドにおまかせください

日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。

alteryx_960x400

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.